<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>PHP 和 DTrace 介绍</title>
<link media="all" rel="stylesheet" type="text/css" href="styles/03e73060321a0a848018724a6c83de7f-theme-base.css" />
<link media="all" rel="stylesheet" type="text/css" href="styles/03e73060321a0a848018724a6c83de7f-theme-medium.css" />

 </head>
 <body class="docs"><div class="navbar navbar-fixed-top">
  <div class="navbar-inner clearfix">
    <ul class="nav" style="width: 100%">
      <li style="float: left;"><a href="features.dtrace.html">« DTrace 动态跟踪</a></li>
      <li style="float: right;"><a href="features.dtrace.dtrace.html">使用 PHP 和 DTrace »</a></li>
    </ul>
  </div>
</div>
<div id="breadcrumbs" class="clearfix">
  <ul class="breadcrumbs-container">
    <li><a href="index.html">PHP Manual</a></li>
    <li><a href="features.dtrace.html">DTrace 动态跟踪</a></li>
    <li>PHP 和 DTrace 介绍</li>
  </ul>
</div>
<div id="layout">
  <div id="layout-content"><div id="features.dtrace.introduction" class="sect1">
  <h2 class="title">PHP 和 DTrace 介绍</h2>

  <p class="para">
   包括 Solaris，macOS，Oracle Linux 和 BSD 在内的很多操作系统
   都提供了 DTrace 跟踪调试框架，它永远可用，并且额外消耗极低。
   DTrace 可以跟踪操作系统行为和用户程序的执行情况。
   它可以显示参数值，也可以用来分析性能问题。
   用户可以使用 DTrace D 脚本语言创建脚本文件来监控探针，进而高效分析数据指针。
  </p>

  <p class="para">
   除非用户使用 DTrace D 脚本激活并监控 PHP 探针，否则它并不会运行，所以不会给正常的应用执行带来任何性能损耗。
   即使 PHP 探针被激活，它的消耗也是非常低的，甚至可以直接在生产系统中使用。
  </p>

  <p class="para">
   在运行时可以激活 PHP “用户级静态定义跟踪”（USDT）探针。
   举例说明，如果 D 脚本正在监控 PHP <code class="literal">function-entry</code> 探针，
   那么，每当 PHP 脚本函数被调用的时候，这个探针将被触发，同时 D 脚本中所关联的动作代码将被执行。
   在脚本的动作代码中，可以打印出诸如函数所在源文件等信息的探针参数，
   也可以记录诸如函数执行次数这样的聚合数据。
  </p>

  <p class="para">
   这里仅描述了 PHP USDT 探针。请参考各操作系统文档中关于 DTrace 的部分获取更多信息，
   例如，如何使用 DTrace 跟踪函数调用，如何跟踪操作系统行为等。
   需要注意的是，不同平台提供的 DTrace 功能并不完全相同。
  </p>

  <p class="para">
   从 PHP 5.4 开始加入 DTrace 静态探针，之前的版本需要使用
   <a href="https://pecl.php.net/" class="link external">&raquo;&nbsp;PECL</a>
   扩展来实现跟踪功能。这个扩展现在已经废弃。
  </p>

  <p class="para">
   在某些 Linux 发行版中，可以使用 SystemTap 工具来监控 PHP DTrace 静态探针。
  </p>
 </div></div></div></body></html>